保护 ML 供应链,提高 AI 安全透明度
消费者和企业几乎每天都会接触到新的 AI 创新和应用。安全构建 AI 是至关重要的问题,我们相信 Google 的安全 AI 框架 (SAIF) 可以为开发者指明方向,助力打造值得用户信赖的 AI 应用。在本文中,我们将重点介绍两种新的方式,让有关 AI 供应链安全的信息可被普遍发现和验证,从而以负责任的方式进行 AI 开发和使用。
安全 AI 框架
https://blog.google/technology/safety-security/introducing-googles-secure-ai-framework/
SAIF 的首要原则是确保 AI 生态系统拥有坚实的安全基础。特别是,需要确保 AI 开发组件的软件供应链 (如机器学习模型) 免受威胁,如模型篡改、数据中毒和有害内容的产生。
模型篡改
https://www.wiz.io/blog/38-terabytes-of-private-data-accidentally-exposed-by-microsoft-ai-researchers
数据中毒
https://www.cobalt.io/blog/data-poisoning-attacks-a-new-attack-vector-within-ai
产生有害内容
https://blog.mithrilsecurity.io/poisongpt-how-we-hid-a-lobotomized-llm-on-hugging-face-to-spread-fake-news/
即使机器学习和人工智能继续快速发展,现在仍有一些解决方案可供 ML 创作者使用。我们基于先前与开源安全基金会 (OpenSSF) 合作的基础,向您展示 ML 模型创作者应该如何使用 SLSA 和 Sigstore 来保护 ML 供应链而免受攻击。
开源安全基金会 (OpenSSF)
http://openssf.org
SLSA
http://slsa.dev
Sigstore
http://sigstore.dev
ML 供应链安全
谁发布了软件?发布者值得信任吗?他们是否采取了安全做法?
对于开源软件,源代码是什么?
开发该软件用到了哪些依赖项?
软件发布后是否可能被篡改版本替代?构建期间是否会发生这种情况?
谁发布了模型?发布者值得信任吗?他们是否采取了安全做法?
对于开源模型,训练代码是什么?
训练该模型用到了哪些数据集?
模型发布后是否可能被篡改版本替代?训练期间是否会发生这种情况?
数百种免费 ML 模型
https://www.kaggle.com/models
篡改 ML 模型和将恶意软件注入传统软件一样,属于严重程度的事件,我们应严肃处理。事实上,由于模型也属于程序,因而许多模型让攻击者能够利用相同类型的任意代码执行漏洞来攻击传统软件。此外,被篡改的模型可能会泄露或窃取数据、由于偏差造成伤害或传播危险的错误信息。
模型属于程序
https://github.com/tensorflow/tensorflow/blob/master/SECURITY.md#tensorflow-models-are-programs
对 ML 模型进行检查并不足以确定是否被注入了不良行为。这类似于试图对可执行文件进行逆向工程以识别恶意软件。为了大规模保护供应链,我们需要了解如何开发模型或软件来解答上述问题。
ML 供应链安全解决方案
数字签名,例如来自 Sigstore 的签名,让用户可以验证软件是否被篡改或替换;
SLSA 来源等元数据会显示软件组成及其构建方式,让消费者可以确保许可证兼容性、识别已知漏洞,并检测更高级的威胁。
Sigstore
http://sigstore.dev
SLSA 来源
https://slsa.dev/provenance/v1
供应链攻击将软件开发生命周期的每一步都变成恶意活动的潜在目标,而这些解决方案可以共同帮助应对供应链攻击日益猖獗的问题。
供应链攻击日益猖獗
https://www.sonatype.com/state-of-the-software-supply-chain/introduction
我们相信,在整个开发生命周期中保持透明度也将有助于保护 ML 模型,因为 ML 模型开发遵循着与常规软件工件开发类似的生命周期:
△ 软件开发与 ML 模型开发的相似之处
类似的生命周期
https://www.mandiant.com/resources/blog/securing-ai-pipeline
△ 通过 ML 供应链形成的 ML 攻击途径
适用于 ML 模型的 Sigstore
Sigstore
https://www.sigstore.dev/
模型签名让类似于 PoisonGPT 的攻击可以被检测到。被篡改的模型无法完成签名验证,或者可以用于直接追溯恶意操作者。我们目前为推广此业界标准开展了以下方面的工作:
让 ML 框架在模型保存/加载 API 时集成签名和验证; 让 ML 模型中心为所有已签名的模型添加徽章标志,从而引导用户选择已签名的模型并激励模型开发者进行签名; 拓展 LLM 模型签名。
PoisonGPT
https://blog.mithrilsecurity.io/poisongpt-how-we-hid-a-lobotomized-llm-on-hugging-face-to-spread-fake-news/
用于 ML 供应链完整性的 SLSA
SLSA
https://slsa.dev/
来源
https://slsa.dev/spec/v1.0/provenance
做更多工作
https://github.com/slsa-framework/slsa/issues/978
Google Cloud Build
https://cloud.google.com/software-supply-chain-security/docs/safeguard-builds
GitHub Actions
https://github.com/slsa-framework/slsa-github-generator
GitLab CI
https://about.gitlab.com/blog/2022/11/30/achieve-slsa-level-2-compliance-with-gitlab/
如何立即为 ML 启用模型签名和 SLSA
现已推出
https://github.com/google/model-transparency
Model Cards
https://modelcards.withgoogle.com/about
提出问题,分享反馈
https://github.com/google/model-transparency/issues/new
推荐阅读
不要忘记 "一键三连" 哦~
分享
点赞
在看